home *** CD-ROM | disk | FTP | other *** search
- This package contains example source to do a lens effect. The QuickBASIC
- program 'LENS.BAS' will calculate the magnification displacement data file
- that is used when compiling 'LENS.ASM', the demonstration program. Each
- time you run LENS.BAS, have it write its calculations to LENS.INC and then
- when it's done, recompile the assembly source.
-
- The demonstration program is a real quick hack. It does not use double
- buffering so the image flickers. It requires a mouse driver (and obviously
- a mouse to be installed) to operate. It loads a TGA file and displays it.
- No checking is done on the TGA file and it must be of the dimensions
- 320x200x256. I am aware that there are several variants of TGA's and I do
- not know if they are all compatible, but if you want to have the example
- program load your own picture, use the Graphics Workshop to convert it.
-
- If you want to understand how the generator program works, read the
- information in the enclosed zip file. The text and image were created by
- another author. The basic algorithm is essentially the same, except the
- placement of origin in the calculation model (his was at the closest point
- on the plane to the center of the sphere, while mine was in the center of
- the sphere). Also, I don't know if the way he calculates the coordinates
- of the actual point to be displayed is the same as mine (it went over my
- head) but I essentially use a mid-point algorithm. Note that my variables
- are different from his. Since the point (x,y,0) is bouncing up (incrementing
- Z) and stopping when it touches the side of the sphere, that point is
- (x,y,sqr(r^2-x^2-y^2)). That point and origin(0,0,0) form a line and the
- place where that line intersects the plane 'Z = m'. The point on the plane
- is (?,?,m). The Z-coordinate in that point is m, which is a fractional
- portion between origin and the point on the sphere. That means that if you
- multiply x by sqr(r^2-x^2-y^2)/m you get the X-coordinate on the plane and
- if you multiply y by sqr(r^2-x^2-y^2)/M you get the Y-coordinate on the
- plane. Now, the X and Y coordinates are of course the actual point to
- display, but are in the range of -r to -r+d-1, so just add r and you get
- them between 0 and d-1
-
-
- Have fun!
- Jeff
-
- .-------------------------------------------------------------.
- | Jeff Lawson of JL Enterprises haroldf@rcf.usc.edu |
- | University of Southern California Phone: (213) 258-5604 |
- | Course Assistant for Computer Use (213) 258-4264 |
- `-------------------------------------------------------------'